using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._DataManagementTools._Workspace
{
    /// <summary>
    /// <para>Clear Workspace Cache</para>
    /// <para>Clears any enterprise geodatabase workspaces from the enterprise geodatabase workspace cache.</para>
    /// <para>从企业级地理数据库工作空间缓存中清除所有企业级地理数据库工作空间。</para>
    /// </summary>    
    [DisplayName("Clear Workspace Cache")]
    public class ClearWorkspaceCache : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public ClearWorkspaceCache()
        {

        }
        public override string ToolboxName => "Data Management Tools";

        public override string ToolName => "Clear Workspace Cache";

        public override string CallName => "management.ClearWorkspaceCache";

        public override List<string> AcceptEnvironments => ["workspace"];

        public override object[] ParameterInfo => [_in_data, _out_results];

        /// <summary>
        /// <para>Input Workspace</para>
        /// <para>The enterprise geodatabase database connection file representing the enterprise geodatabase workspace to be removed from the cache. Specify the path to the enterprise geodatabase connection file that was used in running your geoprocessing tools in order to remove the specific enterprise geodatabase workspace from the cache. Passing no input parameter will clear all enterprise geodatabase workspaces from the cache.</para>
        /// <para>表示要从缓存中移除的企业级地理数据库工作空间的企业级地理数据库数据库连接文件。指定用于运行地理处理工具的企业级地理数据库连接文件的路径，以便从缓存中移除特定的企业级地理数据库工作空间。不传递任何输入参数将从缓存中清除所有企业级地理数据库工作空间。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Workspace")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _in_data { get; set; } = null;


        /// <summary>
        /// <para>Operation succeeded</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Operation succeeded")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _out_results { get; set; }


        public ClearWorkspaceCache SetEnv(object workspace = null)
        {
            base.SetEnv(workspace: workspace);
            return this;
        }

    }

}